package cn.tedu.property.management.service;

import cn.tedu.property.management.pojo.dto.ChargeDetailAddNewDTO;
import cn.tedu.property.management.pojo.dto.ChargeDetailUpdateDTO;
import cn.tedu.property.management.pojo.vo.ChargeDetailStandardVO;
import org.springframework.transaction.annotation.Transactional;

/**
 * 处理收费明细的业务接口
 *
 * @author zyl
 * @version 0.0.1
 */
@Transactional
public interface IChargeDetailService {

    /**
     * 添加收费明显
     * @param chargeDetailAddNewDTO 收费明显实体类
     */
    void addNew(ChargeDetailAddNewDTO chargeDetailAddNewDTO);

    /**
     * 根据收费项目id删除收费明细
     * @param chargeItemId 收费项目id
     */
    void deleteByChargeItemId(Long chargeItemId);

    /**
     * 根据id修改收费明细详情
     * @param id 收费明细id
     * @param chargeDetailUpdateDTO 收费明细修改dto类
     */
    void update(Long id , ChargeDetailUpdateDTO chargeDetailUpdateDTO);

    /**
     * 根据费用项目id查询详情
     * @param chargeItemId 费用项目id
     */
    ChargeDetailStandardVO selectByStandardByChargeItemId(Long chargeItemId);

    /**
     * 根据业主id查询费用详情
     * @param ownerId 业主id
     */
    ChargeDetailStandardVO selectByStandardByOwnerId(Long ownerId);


}
